MATLAB实现彩色图像灰度化

您所在的位置:网站首页 matlab hsv2rgb MATLAB实现彩色图像灰度化

MATLAB实现彩色图像灰度化

2023-07-27 16:04| 来源: 网络整理| 查看: 265

彩色图像灰度化

实现彩色图像的灰度化主要有三种方法:最大值法、平均值法、加权平均法。

最大值法取RGB三色分量中的最大值,即R=G=B=max(R,G,B)平均值法取RGB三色分量中的平均值,即R=G=B=(R+G+B)/3加权平均法按权取RGB三色分量的平均值,即R=G=B=WrR+WgG+WbB,当Wr=0.587,Wg=0.299,Wb=0.114时,效果更佳。 实现效果

原图【彩色图像】 原图像

最大值灰度图像 最大值灰度图像

平均值灰度图像(左),加权平均值灰度图像(右) 在这里插入图片描述

参考代码

最大值法参考代码

im=imread('autumn.tif'); [x,y,z]=size(im); immax=ones(x,y); %最大值灰度图像 for i=1:x for j=1:y immax(i,j)=max(im(i,j,:)); end end im(:,:,1)=immax; im(:,:,2)=immax; im(:,:,3)=immax; figure('name','最大值灰度图像'); imshow(im);

平均值法、加权平均法参考代码 注意在进行图像处理前,要对读入的图像数据使用double()或im2double()进行类型转换!! 否则,uint8类型的图像数据运算结果超出255就会发生溢出!!

im=imread('autumn.tif'); figure('name','原图像'); imshow(im); %提取R、G、B三色分量 imR=im2double(im(:,:,1)); imG=im2double(im(:,:,2)); imB=im2double(im(:,:,3)); %平均值灰度图像 %取完平均值之后还要乘以255,将灰度值范围变回[0,255]并取整 imRGB=round((imR+imG+imB)/3*255); im(:,:,1)=imRGB; im(:,:,2)=imRGB; im(:,:,3)=imRGB; figure('name','灰度图像'); subplot(1,2,1); imshow(im); title('平均值灰度图像'); %加权平均值灰度图像 %Wr=0.587,Wg=0.299,Wb=0.114,加权平均后还要乘以255,将灰度值范围变回[0,255]并取整 imRGB2=round((0.587*imR+0.299*imG+0.114*imB)*255); im(:,:,1)=imRGB2; im(:,:,2)=imRGB2; im(:,:,3)=imRGB2; subplot(1,2,2); imshow(im); title('加权平均值灰度图像');


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3